﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Derbster.Controller
{
    public class MatchManagementController
    {
        /// <summary>
        /// Create a new match.
        /// </summary>
        /// <param name="name">The name of the match.</param>
        /// <returns></returns>
        public MatchHandle CreateMatch(string name)
        {
            return CreateMatch(name, DateTime.Now, null);
        }

        /// <summary>
        /// Create a new match.
        /// </summary>
        /// <param name="name">The name of the match.</param>
        /// <param name="when">When the match is taking place.</param>
        /// <returns></returns>
        public MatchHandle CreateMatch(string name, DateTime when)
        {
            return CreateMatch(name, when, null);
        }

        /// <summary>
        /// Create a new match.
        /// </summary>
        /// <param name="name">The name of the match.</param>
        /// <param name="when">When the match is taking place.</param>
        /// <param name="location">Where the match is taking place.</param>
        /// <returns></returns>
        public MatchHandle CreateMatch(string name, DateTime when, string location)
        {
            throw new NotImplementedException();
        }



        /// <summary>
        /// Advertise a match to other Derbster clients and listeners. 
        /// </summary>
        /// <param name="handle">The handle for the match.</param>
        /// <returns></returns>
        public bool PublishMatch(MatchHandle handle)
        {
            throw new NotImplementedException();
        }

        /// <summary>
        /// Notify other Derbster clients and listeners that a match has been revoked. 
        /// A started match can't be revoked. 
        /// </summary>
        /// <param name="handle">The handle for the match.</param>
        /// <returns></returns>
        public bool RevokeMatch(MatchHandle handle)
        {
            throw new NotImplementedException();
        }
    }
}
